package com.xu.mb3.mbtools;

import org.apache.ibatis.io.ResolverUtil;
import org.apache.ibatis.type.TypeHandler;

import java.util.Set;

/**
 * ResolverUtil工具类用于筛选指定包名下, 符合指定条件的类。
 * 底层实现是先通过VFS扫描指定包路径下所有文件, 然后通过反射判断是否是满足条件的类。
 *
 * @author xuguan
 * @since 2024/11/14
 */
public class ResolverUtilSample {

    public static void resolverUtilSample() {
        final ResolverUtil<Class<?>> resolverUtil = new ResolverUtil<>();
        resolverUtil.find(new ResolverUtil.IsA(TypeHandler.class), "org.apache.ibatis.type");
        final Set<Class<? extends Class<?>>> classes = resolverUtil.getClasses();
        System.out.println(classes);
    }

    public static void main(String[] args) {
        resolverUtilSample();
    }
}
